package com.simple.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.simple.system.domain.entity.SysMenu;
import com.simple.system.domain.vo.SystemManagementRouterVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;


/**
 * @Description 菜单表(SysMenu)表数据库访问层
 * @Author xiaoke
 * @Date 2024/8/10 18:00
 * @Version 1.0
 */
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    /**
     * 获取菜单-树状形
     * @return List<SysMenu>
     */
    List<SysMenu> getMenusTree();


    /**
     * 获取权限是否存在
     * @param ids 菜单Ids
     * @return 存在的个数
     */
    Integer existPerms(@Param("ids") Set<Long> ids);

    /**
     * 插入菜单-角色
     * @param id 菜单Id
     * @param roles 角色Id
     */
    void insertMenuRoles(Long id,Set<Long> roles);

    /**
     * 删除菜单-角色
     * @param id 菜单Id
     */
    void deleteMenuRoles(Long id);

    /**
     * 获取当前用户菜单导航
     * @return List<SystemManagementRouterVo>
     */
    List<SystemManagementRouterVo> managementRouter();

    /**
     * 获取当前用户菜单权限
     * @param userId 用户Id
     * @return List<SysMenu>
     */
    List<SysMenu> getByUserIdMenuPerms(Long userId);

    /**
     *  根据角色Id查询菜单使用这个角色的数量
     * @param id 用户Id
     * @return Integer
     */
    Integer checkRoleUse(Long id);
}

